<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>IOUtils (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="IOUtils (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IOUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/poi/util/IntMapper.html" title="class in org.apache.poi.util"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../org/apache/poi/util/JvmBugs.html" title="class in org.apache.poi.util"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/poi/util/IOUtils.html" target="_top">FRAMES</a></li>
<li><a href="IOUtils.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.util</p>
<h2 title="Class IOUtils" class="title">Class IOUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.util.IOUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <strong>IOUtils</strong>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#calculateChecksum(byte[])">calculateChecksum</a></strong>(byte[]&nbsp;data)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#closeQuietly(java.io.Closeable)">closeQuietly</a></strong>(java.io.Closeable&nbsp;closeable)</code>
<div class="block">Quietly (no exceptions) close Closable resource.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#copy(java.io.InputStream, java.io.OutputStream)">copy</a></strong>(java.io.InputStream&nbsp;inp,
    java.io.OutputStream&nbsp;out)</code>
<div class="block">Copies all the data from the given InputStream to the OutputStream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#readFully(java.io.InputStream, byte[])">readFully</a></strong>(java.io.InputStream&nbsp;in,
         byte[]&nbsp;b)</code>
<div class="block">Helper method, just calls <tt>readFully(in, b, 0, b.length)</tt></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#readFully(java.io.InputStream, byte[], int, int)">readFully</a></strong>(java.io.InputStream&nbsp;in,
         byte[]&nbsp;b,
         int&nbsp;off,
         int&nbsp;len)</code>
<div class="block">Same as the normal <tt>in.read(b, off, len)</tt>, but tries to ensure
 that the entire len number of bytes is read.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#readFully(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">readFully</a></strong>(java.nio.channels.ReadableByteChannel&nbsp;channel,
         java.nio.ByteBuffer&nbsp;b)</code>
<div class="block">Same as the normal <tt>channel.read(b)</tt>, but tries to ensure
 that the entire len number of bytes is read.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#toByteArray(java.nio.ByteBuffer, int)">toByteArray</a></strong>(java.nio.ByteBuffer&nbsp;buffer,
           int&nbsp;length)</code>
<div class="block">Returns an array (that shouldn't be written to!) of the
  ByteBuffer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/util/IOUtils.html#toByteArray(java.io.InputStream)">toByteArray</a></strong>(java.io.InputStream&nbsp;stream)</code>
<div class="block">Reads all the data from the input stream, and returns the bytes read.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="toByteArray(java.io.InputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre>public static&nbsp;byte[]&nbsp;toByteArray(java.io.InputStream&nbsp;stream)
                          throws java.io.IOException</pre>
<div class="block">Reads all the data from the input stream, and returns the bytes read.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="toByteArray(java.nio.ByteBuffer, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre>public static&nbsp;byte[]&nbsp;toByteArray(java.nio.ByteBuffer&nbsp;buffer,
                 int&nbsp;length)</pre>
<div class="block">Returns an array (that shouldn't be written to!) of the
  ByteBuffer. Will be of the requested length, or possibly
  longer if that's easier.</div>
</li>
</ul>
<a name="readFully(java.io.InputStream, byte[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFully</h4>
<pre>public static&nbsp;int&nbsp;readFully(java.io.InputStream&nbsp;in,
            byte[]&nbsp;b)
                     throws java.io.IOException</pre>
<div class="block">Helper method, just calls <tt>readFully(in, b, 0, b.length)</tt></div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="readFully(java.io.InputStream, byte[], int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFully</h4>
<pre>public static&nbsp;int&nbsp;readFully(java.io.InputStream&nbsp;in,
            byte[]&nbsp;b,
            int&nbsp;off,
            int&nbsp;len)
                     throws java.io.IOException</pre>
<div class="block">Same as the normal <tt>in.read(b, off, len)</tt>, but tries to ensure
 that the entire len number of bytes is read.
 <p>
 If the end of file is reached before any bytes are read, returns -1. If
 the end of the file is reached after some bytes are read, returns the
 number of bytes read. If the end of the file isn't reached before len
 bytes have been read, will return len bytes.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="readFully(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFully</h4>
<pre>public static&nbsp;int&nbsp;readFully(java.nio.channels.ReadableByteChannel&nbsp;channel,
            java.nio.ByteBuffer&nbsp;b)
                     throws java.io.IOException</pre>
<div class="block">Same as the normal <tt>channel.read(b)</tt>, but tries to ensure
 that the entire len number of bytes is read.
 <p>
 If the end of file is reached before any bytes are read, returns -1. If
 the end of the file is reached after some bytes are read, returns the
 number of bytes read. If the end of the file isn't reached before len
 bytes have been read, will return len bytes.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="copy(java.io.InputStream, java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre>public static&nbsp;void&nbsp;copy(java.io.InputStream&nbsp;inp,
        java.io.OutputStream&nbsp;out)
                 throws java.io.IOException</pre>
<div class="block">Copies all the data from the given InputStream to the OutputStream. It
 leaves both streams open, so you will still need to close them once done.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="calculateChecksum(byte[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calculateChecksum</h4>
<pre>public static&nbsp;long&nbsp;calculateChecksum(byte[]&nbsp;data)</pre>
</li>
</ul>
<a name="closeQuietly(java.io.Closeable)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>closeQuietly</h4>
<pre>public static&nbsp;void&nbsp;closeQuietly(java.io.Closeable&nbsp;closeable)</pre>
<div class="block">Quietly (no exceptions) close Closable resource. In case of error it will
 be printed to <a href="../../../../org/apache/poi/util/IOUtils.html" title="class in org.apache.poi.util"><code>IOUtils</code></a> class logger.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>closeable</code> - resource to close</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IOUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/poi/util/IntMapper.html" title="class in org.apache.poi.util"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../org/apache/poi/util/JvmBugs.html" title="class in org.apache.poi.util"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/poi/util/IOUtils.html" target="_top">FRAMES</a></li>
<li><a href="IOUtils.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
